const input1 = document.getElementById('input1')

// let timer = null

// input1.addEventListener('keyup', function () {
//     if (timer) {
//         clearTimeout(timer)
//     }

//     timer = setTimeout(() => {
//         console.log('触发change事件', input1.value)

//         timer = null
//     }, 300)
// })

// const debonuce = (fn, delay = 300) => {
//     let timer = null

//     return function () {
//         if (timer) {
//             clearTimeout(timer)
//         }

//         timer = setTimeout(() => {
//             fn.apply(this, arguments)
//             timer = null
//         }, delay)
//     }
// }

const debonuce = (fn, delay) => {
    let timer = null

    return function () {
        if (timer) {
            clearTimeout(timer)
        }
        timer = setTimeout(() => {
            fn.apply(this, arguments)
            timer = null
        }, delay)
    }
}

input1.addEventListener('keyup', debonuce(function () {
    console.log(input1.value)
}, 500))